package com.feemanage.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.common.validate.add;
import com.common.validate.edit;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 经费调账主表
 */
@Data
@TableName("biz_budget_alteration")
@ApiModel("经费调账主表")
public class BizBudgetAlteration extends  myBaseEntity{

    private static final long serialVersionUID = 1L;

    /** 自增ID */
    @ApiModelProperty("主键id")
    @TableId(value = "id",type = IdType.ASSIGN_UUID)
    @NotNull(message = "id不能为空", groups = {edit.class})
    private String id;

    /** 项目ID */
    @ApiModelProperty("项目id")
    private String projectId;

    /** 变更时间 */
    @ApiModelProperty("变更时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime alterdate;

    /** 调账原因 */
    @ApiModelProperty("调账原因，不能为空")
    @NotNull(message = "调账原因不能为空", groups = {add.class,edit.class})
    private String alterreason;

    /** 审核状态 */
    @ApiModelProperty("审核状态")
    private String checkstatus;

    /** 审核日期 */
    @ApiModelProperty("审核日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String checkdate;

    /** 审核人 */
    @ApiModelProperty("审核人")
    private String checker;

    /** 经费卡信息变更json */
    private String AMOUNT_ALTERATION_JSON;

    /** 费用信息变更json */
    private String BUDGET_AMOUNT_ALTERATION_JSON;

    /**  */
    private String PROJECT_ALTERATION_ID;

    @ApiModelProperty("流程实例id")
    private String processInstanceId;

    /**
     * 项目名称
     */
    @ApiModelProperty("项目名称")
    @TableField(exist = false)
    private  String projectName;

    /**
     * 负责人
     */
    @ApiModelProperty("负责人")
    @TableField(exist = false)
    private String ChargerName;


    /**
     * 项目分类
     */
    @ApiModelProperty("项目分类，传code，多个用，隔开传")
    @TableField(exist = false)
    private String projectType;

    /**
     * 所属单位
     */
    @ApiModelProperty("所属单位，传id")
    @TableField(exist = false)
    private String unitId;

    /**
     * 审核状态
     */
    @ApiModelProperty("审核状态")
    @TableField(exist = false)
    private String Status;

    /**
     * 预算类型
     */
    @ApiModelProperty("预算类型")
    @TableField(exist = false)
    private String budgetType;


}
